package file_;

import java.io.File;
import java.util.LinkedList;

/**
 * 输入一个目录，求这个目录占用的空间大小（包括子目录，以及子子目录。。。）
 */
public class FileTest06 {
    //打印名字
//    public static void cal(File f){
//        System.out.println(f.getAbsolutePath());
//        File[] files = f.listFiles();
//        if (files==null||files.length==0){
//            return;
//        }
//        //递归
//        for (File file : files) {
//            cal(file);
//        }
//    }
//    public static long getSize(File file){
//        long size=0;
//        if (file.isDirectory()){
//            File[] files = file.listFiles();
//            for (File file1 : files) {
//                size+=getSize(file1);
//            }
//        }else {
//            size+=file.length();
//        }
//        return size;
//    }
    public static void calc2(File f){
        LinkedList<File> file = new LinkedList<>();
        file.add(f);
        long size=0;
        while (file.size()>0){
            File file1 = file.removeFirst();
            if (file1.isFile()){
                size+=f.length();
                continue;
            }
            File[] files = file1.listFiles();
            for (File file2 : files) {
              file.add(file2);
            }
        }
        System.out.println(f.getName()+"大小"+size);
    }

    public static void main(String[] args) {
        String fileName="D:\\2.Java面向对象";
        File file = new File(fileName);
//        cal(file);
//        System.out.println(getSize(file));
        calc2(file);
    }
}
